﻿Imports WSEntidades
Imports Utilerias
Imports WSDatos
Imports System.Transactions
Public Class CIeduBL
    Private Function EsValidoParaRegistrar(ByRef pIedu As CIeduBE, ByRef mensaje As String) As Boolean
        mensaje = ""
        Try
            If (pIedu.Status = CIeduBE.EstatusIEDU.Activa) Then
                If (Not String.IsNullOrWhiteSpace(pIedu.autRVOE_Preescolar)) Then
                    pIedu.autRVOE_Preescolar = pIedu.autRVOE_Preescolar.Trim
                Else
                    pIedu.autRVOE_Preescolar = ""
                End If
                If (Not String.IsNullOrWhiteSpace(pIedu.autRVOE_Primaria)) Then
                    pIedu.autRVOE_Primaria = pIedu.autRVOE_Primaria.Trim
                Else
                    pIedu.autRVOE_Primaria = ""
                End If
                If (Not String.IsNullOrWhiteSpace(pIedu.autRVOE_Secundaria)) Then
                    pIedu.autRVOE_Secundaria = pIedu.autRVOE_Secundaria.Trim
                Else
                    pIedu.autRVOE_Secundaria = ""
                End If
                If (Not String.IsNullOrWhiteSpace(pIedu.autRVOE_Profesional)) Then
                    pIedu.autRVOE_Profesional = pIedu.autRVOE_Profesional.Trim
                Else
                    pIedu.autRVOE_Profesional = ""
                End If
                If (Not String.IsNullOrWhiteSpace(pIedu.autRVOE_Bachillerato)) Then
                    pIedu.autRVOE_Bachillerato = pIedu.autRVOE_Bachillerato.Trim
                Else
                    pIedu.autRVOE_Bachillerato = ""
                End If

                With pIedu
                    If (.autRVOE_Preescolar = "") _
                        And (.autRVOE_Primaria = "") _
                        And (.autRVOE_Secundaria = "") _
                        And (.autRVOE_Profesional = "") _
                        And (.autRVOE_Bachillerato = "") Then
                        mensaje &= "Especifique la Clave RVOE del nivel educativo que vaya a utilizar." & vbCrLf
                    End If
                End With
            Else
                If (String.IsNullOrWhiteSpace(pIedu.autRVOE_Preescolar)) Then
                    pIedu.autRVOE_Preescolar = ""
                End If
                If (String.IsNullOrWhiteSpace(pIedu.autRVOE_Primaria)) Then
                    pIedu.autRVOE_Primaria = ""
                End If
                If (String.IsNullOrWhiteSpace(pIedu.autRVOE_Secundaria)) Then
                    pIedu.autRVOE_Secundaria = ""
                End If
                If (String.IsNullOrWhiteSpace(pIedu.autRVOE_Profesional)) Then
                    pIedu.autRVOE_Profesional = ""
                End If
                If (String.IsNullOrWhiteSpace(pIedu.autRVOE_Bachillerato)) Then
                    pIedu.autRVOE_Bachillerato = ""
                End If
            End If

            Return (mensaje = "")
        Catch ex As Exception
            Log.LogException(ex, "CIeduBL.EsValidoParaRegistrar")
            mensaje &= ex.Message
            Return False
        End Try
    End Function

    Public Function ActualizaIedu(ByVal TokenConexion As String, ByVal Iedu As CIeduBE, ByRef detResp As DetalleRespuesta) As Boolean
        detResp.Mensajes = ""
        Dim IeduDAL As CIeduDAL = New CIeduDAL("")
        Try
            TokenConexion = RijndaelSimple.desencriptaDefault(TokenConexion)
            If (EsValidoParaRegistrar(Iedu, detResp.Mensajes)) Then
                IeduDAL = New CIeduDAL(TokenConexion)
                Using transacCta As TransactionScope = New TransactionScope()
                    If (IeduDAL.actualizaIeduComp(Iedu)) Then
                        If (IeduDAL.actualizaIeduConfig(Iedu)) Then
                            transacCta.Complete()
                            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ProcesamientoOK, "Datos del complemento iedu actualizados.")
                            Return True
                        Else
                            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.Catalogo_NoFueActualizado,
                                                 "No se pudo realizar la actualización de los Datos del complemento IEDU." & vbCrLf & detResp.Mensajes)
                            Return False
                        End If
                    Else
                        detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.Catalogo_NoFueActualizado,
                                                 "No se pudo realizar la actualización de los Datos del complemento IEDU." & vbCrLf & detResp.Mensajes)
                        Return False
                    End If
                End Using
            Else
                detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ValoresInvalidos,
                                         "La informacion no es valida para actualizar: " & vbCrLf & detResp.Mensajes)
                Return False
            End If
        Catch ex As Exception
            Log.LogException(ex, "CIeduBL.ActualizaIedu")
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                        detResp.Mensajes & "Excepción al actualizar complemento IEDU: " & ex.Message)
            Return False
        Finally
            IeduDAL = Nothing
        End Try
    End Function

    Public Function GetIedu(ByVal tokenConexion As String, ByRef detResp As DetalleRespuesta) As CIeduBE
        detResp.Mensajes = ""
        Dim ieduDAL As CIeduDAL = New CIeduDAL("")
        Dim ieduBE As CIeduBE
        Try
            ieduDAL = New CIeduDAL(RijndaelSimple.desencriptaDefault(tokenConexion))
            ieduBE = ieduDAL.getIedu()
            If (ieduBE IsNot Nothing) Then
                detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ProcesamientoOK, "Se obtuvo la información del complemento IEDU con éxito.")
                Return ieduBE
            Else
                detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.Catalogo_RegistroInexistenteOInactivo,
                                         "No se obtuvo la información del complemento IEDU" & vbCrLf & detResp.Mensajes)
                Return Nothing
            End If

        Catch ex As Exception
            Log.LogException(ex, "CIeduBL.GetIedu")
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                        detResp.Mensajes & "Excepción al obtener información del complemento iedu: " & ex.Message)
            Return Nothing
        Finally
            ieduDAL = Nothing
            ieduBE = Nothing
        End Try
    End Function

    'Private Function EsValidoParaGetIedu(ByRef pCveComp As String, ByRef mensaje As String) As Boolean
    '    mensaje = ""
    '    Try
    '        If (String.IsNullOrEmpty(pCveComp)) Then
    '            mensaje &= "El campo clave del Complemento iedu no puede ir vacio." & vbCrLf
    '        End If
    '        Return (mensaje = "")
    '    Catch ex As Exception
    '        Log.LogException(ex, "CIeduBL.EsValidoParaGetIedu")
    '        mensaje &= ex.Message
    '        Return False
    '    End Try
    'End Function
End Class
